A UPnP™ (hereinafter, it is called “UPnP” for short) network proposed for home networking consists of a plurality of UPnP devices, services, and control points (CPs). A service on a UPnP network represents a smallest control unit on the network, which is modeled by state variables.
A CP (Control Point) on a UPnP network represents a control application equipped with functions for detecting and controlling other devices and/or services. A CP is operated on a physical device such as a PDA providing the user with a convenient interface.
As shown in FIG. 1, a UPnP AV home network comprises a media server (MS) 120 providing a home network with media data, a media renderer (MR) 130 playing media data through the home network, and an AV control point 110 controlling the media server 120 and the media renderer 130. The media server 120 and the media renderer 130 are controlled devices controlled by the control point 110.
The media server 120 (to be precise, CDS (Content Directory Service) 121 within the media server 120) stores media files and information of containers (which correspond to directories) as the corresponding object information. An ‘object’ is a comprehensive terminology indicating both an item having information about more than one media file and a container having information about a directory. Depending on circumstances, the terminology of ‘object’ can be used to specify either an item or a container. One item corresponds to one or more than one media file. For example, multiple media files of the same content but with different bit rates are managed as a single item.
FIG. 2 illustrates a simplified signal flow between devices and/or services during a media play procedure carried out in the network of FIG. 1.
First, the control point (CP) 110 obtains information about a protocol supported by the media renderer (MR) 130 (S01). The media server (MS) 120, to inform the control point 110 of information about a directory and media files under the corresponding directory, informs the control point 110 of information about a current directory and item information about media files under the directory each time a UPnP action 141 (e.g., a browsing action) is invoked (S10) in accordance with the user's request.
The CP 110 displays the received information about each individual object for the user through an appropriate UI (User Interface) (S11-1) after removing information about an item that does not follow the protocol supported by the media renderer 130. If the user selects an item (or a media file of particular quality belonging to the item) through a UI (S11-2), the CP 110 requests an action for preparing connection (PrepareForConnection( )) on the media server 120 and the media renderer 130 respectively for presentation of the selected media file (hereinafter, it is called ‘component’ or ‘media component’). The CP 110 then receives an instance ID about participating elements (CM: ConnectionManager, AVT: AVTransport service, and RCS: RenderingControl service) required for presentation by streaming between both devices 120, 130 (S12-1, S12-2). The instance ID is used for specifying and controlling a current streaming service. (For example, if sound volume is to be adjusted during rendering of a presentation stream, a SetVolume( ) action uses an instance ID of a previously received RCS (S15-1).) Next, the CP 110 links access location information about a previously selected component (e.g., URL (Universal Resource Locator) information) with an AVTransport service 133 through an action (S13) (in the example of FIG. 1, AVTransport service is installed in the media renderer 130 but it can also be installed in the media server 120). The CP 110 requests a play action on AVTransport service 133, the play action having AVTransport service instance ID as an input argument (S14), whereby data of a component selected through an appropriate information exchange procedure between the media renderer 130 and the media server 120 are streamed and presented by RCS 131 (S15).
If another media file is to be presented during the presentation (S15), the procedure described above steps (S11-2, S12-1, S12-2, S13, and S14) should be carried out again after the presentation has begun. Depending on circumstances, the steps S10 and S11-1 can also be carried out.
The above method for playing more than one component in a sequential order is not suitable for the case when more than one media component is played in synchronization with each other (hereinafter, media components associated with each other are called ‘multiple component’). One example is a case that a media component is a movie of video attribute and the other component is a subtitle, of text or image attribute, of the movie. In such a case of sequential playback, synchronized presentation of a media renderer becomes difficult or impossible because of time delay. For a certain case, playback of a component of video attribute may cause playback of an additional component of video attribute (which is, for example, a component of video attribute containing data for video scenes seen at a different angle). In this case, too, playback of respective content sources must be done without time delay among the content sources to satisfy a user during the playback.